package daos;
import java.sql.*;
import beans.*;
import java.util.*;


public class UsuarioDAO {
    private Connection conexion;
    public void conectar()throws ClassNotFoundException,SQLException{//class para driver, sql para usario
        Class.forName("com.mysql.jdbc.Driver");
        conexion=DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/cursoJava","root", "");
    }
    public List<Usuario>verTodos()throws SQLException{
        PreparedStatement ps=conexion.prepareStatement("SELECT * FROM usuario");
        ResultSet rs=ps.executeQuery();
        List<Usuario> lista=new ArrayList<Usuario>();

        while(rs.next()){//checa si hay un registro en la siguiente posicion y lo llena
            int idUsuario=rs.getInt("id_usuario");
            String usuario=rs.getString("usuario");
            String password=rs.getString("password");
            Usuario u=new Usuario(idUsuario, usuario, password);
            lista.add(u);
        }
        return lista;
    }
    public int borrar(Usuario u)throws SQLException{
        String sql="DELETE FROM Usuario WHERE id_usuario=?";
        PreparedStatement ps= conexion.prepareStatement(sql);
        ps.setInt(1, u.getId_usuario());
        return ps.executeUpdate();
    }
    public int actualizar(Usuario u)throws SQLException{
        String sql="UPDATE usuario SET usuario=?,password=? WHERE id_usuario=?";
        PreparedStatement ps=conexion.prepareStatement(sql);
        ps.setString(1, u.getUsuario());
        ps.setString(2, u.getPassword());
        ps.setInt(3, u.getId_usuario());
        return ps.executeUpdate();
    }
    public boolean validar(Usuario u)throws SQLException{
        String sql="SELECT * FROM usuario WHERE usuario=? AND password=?";
        PreparedStatement ps=conexion.prepareStatement(sql);
        ps.setString(1, u.getUsuario());
        ps.setString(2, u.getPassword());
        ResultSet rs=ps.executeQuery();
        return rs.next();
    }
    
    public boolean validarUsuario(Usuario u)throws SQLException{
        String sql="SELECT * FROM usuario WHERE usuario=?";
        PreparedStatement ps=conexion.prepareStatement(sql);
        ps.setString(1, u.getUsuario());
        ResultSet rs=ps.executeQuery();
        return rs.next();
    }
    
    public int insertar(Usuario u)throws SQLException{
        String sql="INSERT INTO usuario (usuario,password)VALUES(?,?)";
        PreparedStatement ps=conexion.prepareStatement(sql);
        ps.setString(1,u.getUsuario());
        ps.setString(2,u.getPassword());
        int rows=ps.executeUpdate();
        return rows;
    }
    public void desconectar()throws SQLException{
       conexion.close();
    }
}
